#ifndef CARDS_H
#define CARDS_H
#include<QSet>
#include"card.h"
#include<ctime>
#include<iostream>
#include <algorithm>
#include<QDebug>
#include<QTime>
class Cards
{
public:
    enum SortType{Asc,Desc,NoSort};

    Cards( Card&card);
    void add(Card& card);
    void add(const Cards&cards);

    //一次性插入多个数据//<<运算符重载
    Cards& operator<<( Card&card);
    Cards &operator<<(const Cards&cards);

    void remove(Card& card);
    void remove(Cards& cards);

    int CardCount();
    bool isEmpty();
    void clear();


    //最大点数
    //最小点数
    Card::CardPoint maxPoint();
    Card::CardPoint minPoint();
    //指定点数牌的数量
    int pointCount(Card::CardPoint point);
    //某张牌是否在集合中
    bool contains(const Card&card);
    bool contains(const Cards&cards);

    //随机取出一张牌
    Card takeRandCard();

    //转换容器
    CardList toCardList(SortType type=Desc);
    Cards();

private:
    QSet<Card> m_cards;

};

#endif // CARDS_H
